Stochastic screening method with dot pattern regularity control and dot growth

ABSTRACT

A stochastic screening mask is provided for rendering halftone images. A filter controlled force masking method is used to vary the mask patterns from regularity to randomness. Dot size (amplitude), dot number (frequency), and dot shape are modulated integrally at each gray level during the generation of the mask. The single pixel limit for blue noise making is broken down by this approach. The halftone patterns generated with this method can have visually pleasing blue noise attribute. This new screening method would provide flexible solutions for different types of printing processes.

BACKGROUND AND FIELD OF THE INVENTION

The present invention relates generally to digital halftoning, and moreparticularly to a method of rendering a halftone image by utilizing apixel-by-pixel comparison of an image against a stochastic dithermatrix. The variation of dot patterns represented by the stochasticdither matrix is arranged by use of a filter-controlled force maskingtechnique. The dot number and dot size are modulated to produce auniform pattern and to break down the single pixel limit for blue noisemasking.

Halftoning describes the process of displaying an image on a device thatis capable of representing only a finite, discrete number of tonelevels. Halftoning renders the illusion of various gray levels by usinga binary pattern. Two examples in which halftoning is applied includethe printing of an 8-bit image data on a 1-bit output device and thedisplaying of an 8-bit image data on a 4-bit monitor. Halftoning methodsmay be broken down into the present categories of neighborhoodoperations and point processing operations. Generally, neighborhoodoperations require considerably more computations than point processingoperations. Examples of halftoning methods in the neighborhood operationcategory include: (1) the Model based error diffusion (MED) algorithm,as described in T. N. Pappas and D. L. Neuhoff, “Model-basedHalftoning,” Proc. SPIE, vol. 1453, Human Vision, Visual Proc., andDigital Display III, San Jose, Calif., February 1992; (2) theleast-square model-based (LSMB) algorithm, as described in T. N. Pappasand D. L. Neuhoff, “Least-squares Model-based Halftoning,” Proc. SPIE,vol. 1666, Human Vision, Visual Proc., and Digital Display III, SanJose, Calif. February 1992; and (3) Model-based halftoning using directbinary search, as described in M. Analoui and J. P. Allebach,“Model-based Halftoning Using Direct Binary Search,” Proc. SPIE, vol.1666, Human Vision, Visual Proc., and Digital Display III, San Jose,Calif. February 1992.

Screening is a point processing operation. In screening, a twodimensional image (to be reproduced) is compared pixel-by-pixel with animage-independent threshold matrix. Screening methods may be classifiedinto AM (amplitude modulated) screening, and FM (frequency modulated)screening. In AM screening, dot size (amplitude) is varied according togray level. Dot size increases with gray level while the dot number isfixed. In contrast, a set of fixed-size, fine dots are used in FMscreening whereby the dots are variably spaced from neighboring dots.When the gray level increases, the dot number (frequency) increases andtherefore dot spacing is denser. Because the dot size of FM screening issmaller than the dot size of AM screening, an original image can berendered with a higher resolution by FM screening.

Clustered dot screening is a traditional AM screening method. It isbeing widely used in hard copy printings because it is robust to dotoverlap and other printer distortions. In the screen pattern, the higherthreshold dots are centered so that dots are clustered around thecenter. In other words, the printed pattern consists of a plurality ofcentral black dots that increase in size and form macro-dots as the grayvalue of the neighborhood decreases. When ink dots are printed inclusters, most of the black dots overlap with other black dots ratherthan overlap with white spaces. Thus changes in the apparent gray leveldue to dot overlap are minimized, and the accuracy of the gray-scalerendition of the printed image is maintained to some extent. However,the macro-dots in clustered-dot screening (i.e., low-frequency periodicartifacts) are highly visible and unpleasant in appearance to the humaneye. This ordered screening leads to fine image and detail loss and to amoiré pattern when a prescreened image or color image is rendered.

In Bayer's dispersed-dot screening (which is a conventional FM screeningmethod), the threshold matrix is designed to maximize the distancebetween printed dots in the printed image so that a number of dispersedmicro-dots scattered throughout the pattern are produced. Since theconventional Bayer's threshold matrices are approximately based onregular orderings of the threshold values, visible patterns, such astextural contouring, often appear in the output images.

To overcome these drawbacks of ordered dispersed-dot screening,randomness is intentionally added to the dot pattern. In previous knownapproaches, there are two ways to obtain a visually favored pattern. Oneway is to optimize a random pattern by use of blue noise screening, asdiscussed in M. Yao and K. J. Parker, “Modified Approach to theConstruction of a Blue Noise Mask,” Journal of Electronic Imaging, vol.3(1), January 1994, pp. 92-97; U.S. Pat. No. 5,111,310 to Parker; U.S.Pat. No. 5,535,020 to Ulichney; U.S. Pat. No. 5,317,418 to Lin; U.S.Pat. No. 5,463,720 to Granger; U.S. Pat. No. 5,557,709 to Shu; U.S. Pat.No. 5,673,121 to Wang; U.S. Pat. No. 5,557,602 to Cooper et al., andU.S. Pat. No. 5,745,660 to Kolpatzik et al. Starting from a randompattern, the above approaches use a dot profile, find voids and cluster“clumps”, swap clumps and uniformly redistribute “ON” and “OFF” dots.Clumps are defined as unwanted low-frequency structures in blue noisemask construction.

The other way to obtain a visually favored pattern is to adjust aregular pattern to be random in some extent. In W. Purgathofer et al.,“Improved Threshold Matrices for Ordered Dithering,” Graphics Gems V,pp. 297-301, Academic Press, Inc. (1995), an approach is discussedwhereby a repulsive force field generated by all “ON” dots is used toinfluence the resulting dot distribution.

The above-mentioned approaches for modifying ordered dispersed-dotscreening avoid the contouring artifacts of Bayer's dithering, providemore detail and smooth image rendering, and eliminate moiré pattern inclustered-dot screening. However, in the above approaches, the imagehighlight areas can suffer from the visibility of individually printeddots. Therefore, images that are reproduced appear more grainy or noisythan those images produced in the light tone portion by clustered-dotscreening.

Moreover, the above stochastic screening methods are only preferablyselected when a display device can accommodate a single pixel. Thereason is that when a single pixel can not be produced, it simply may bereplicated to improve printability but resolution is sacrificed and theimage appears more grainy.

In a laser printing (electrophotography) process, a photosensitive drumis charged with a scanning illumination, leaving a latent image toattract opposite-charged toner particles. The toner image is then offsetto paper.

There are two additional problems for dot pattern reproduction whenprevious known stochastic screening methods are used inelectrophotography. First, toners with the same charge repulse eachother. Since the charge force is not uniform, some single dots ormicrodots aggregate. Again, the image looks more noisy. Second, dotmisregistration results in more significant color shifts in a colorimage than in images reproduced by clustered-dot screening.

In U.S. Pat. No. 5,740,279 to Wang et al., it is indicated thatconventional blue noise screening may work well in ink-j et printing butnot in electrophotography. Thus, Wang discloses a composite lookup table(LUT) merged by a cluster screen and a stochastic screen. However, Wangdoes not guarantee the blue noise characteristic of a dot pattern ateach gray level because the two processes are separated.

Therefore, there is a need for a stochastic screening method that iscapable of producing a smooth and high detailed image that is free of amoiré pattern. There is also a need for a method for controlling thevariation of patterns from a regular structure to a random structure soas to obtain a desirable mask. There is a further need for an approachthat considers the physical behavior of a printer (e.g., dot overlap,dot reproduction, and dot registration) when generating a dithered mask.

SUMMARY OF THE INVENTION

In one aspect of the present invention, a dither matrix (mask) isgenerated for rendering a halftone image. The dither matrix forms apattern upon completion. The method for forming the dither matrixincludes the steps of modulating, at a each gray level, the dot numberin the pattern for forming the dither matrix, and modulating, at eachgray level, the dot size in the pattern for forming the dither matrix.

The present invention eliminates moiré patterns and also minimizes thegrainyimage problem in previous known stochastic screening methods bycontrolling the variation of the pattern regularity of the mask. Afilter-controlled force is used for generating the stochastic dithermatrix. Modulation of dot size (amplitude) and dot number (frequency) isperformed integrally at each gray level during generation of the mask.By integrating frequency modulation (FM) and amplitude modulation (AM)in the generation of the mask, it is possible to break down the limit ofsingle pixel printability of previous known stochastic screeningmethods. This integration of AM and FM modulation is in contrast toconventional approaches which teach only dot number modulation for bluenoise screening. A halftone image is then rendered by utilizing apixel-by-pixel comparison of an image against the generated stochasticdither matrix. The invention permits a mid-size mask (such as a 128×128mask) to be applied effectively in 1200 dpi laser printing.

DESCRIPTION OF THE DRAWINGS

FIG. 1A is a schematic block diagram of a computer system that cangenerate a halftone image by use of a dither matrix in accordance withthe present invention;

FIG. 1B is a flowchart illustrating the generation of a dither matrix inaccordance with the present invention;

FIG. 2 is a top elevational view of pixel blocks for the purpose ofillustrating the wrap-around property of a mask;

FIG. 3 is a flowchart illustrating the details of determining the forcefield matrix after a pixel is turned on;

FIG. 4 is a flowchart illustrating the dot nucleation phase for a nucleisize of pixel 1×1 per dot;

FIG. 5 is a flowchart illustrating the dot nucleation phase for a nucleisize that is larger than pixel 1×1 per dot;

FIG. 6 is a matrix showing the force values of neighboring pixels of aparticular “ON” pixel;

FIG. 7(a) shows a dot pattern with regular characteristics for a nucleisize of pixel 1×1 per dot.

FIG. 7(b) shows a dot pattern with blue noise characteristics for anuclei size of pixel 1×1 per dot.

FIG. 7(c) shows diagrams illustrating a seed pattern with blue noisecharacteristics and a graph of a Radially Average Power Spectrum;

FIG. 8 is a flowchart illustrating the dot growth phase which occurafter the dot nucleation phase;

FIG. 9 is a flowchart illustrating the dot pattern uniformization phasewhich occur after the dot growth phase;

FIG. 10(a) shows a dot pattern during the dot growth phase for a nucleisize of pixel 1×1 per dot;

FIG. 10(b) shows a dot pattern during the dot pattern uniformizationphase for a nuclei size of pixel 1×1 per dot;

FIG. 11(a) shows a dot pattern during the start of the dot nucleationphase for a nuclei size of pixel 1×3 per dot.

FIG. 11(b) shows the dot pattern of FIG. 11(a) during the dot growthphase for a nuclei size of pixel 1×3 per dot.

FIG. 11(c) shows the dot pattern of FIG. 11(b) after the dot growthphase for a nuclei size of pixel 1×3 per dot.

FIG. 11(d) shows the dot pattern of FIG. 11(c) during the dot patternuniformization phase for a nuclei size of pixel 1×3 per dot.

FIG. 12 shows various images (600 dpi) that are generated by use of thedither matrix in accordance with the present invention; and

FIG. 13 shows various images (1200 dpi) that are generated by use of thedither matrix in accordance with the invention.

DETAILED DESCRIPTION OF THE DRAWINGS

The Figures depict a preferred embodiment of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

A dither matrix (mask) is typically stored as an array in a programmableread only memory (PROM) in a computer or in a binary output displaydevice. To generate a mask matrix, the pixels in the mask are turned onor off (i.e., dots are added on or moved out of the matrix). Maskgeneration is characterized by a probability setting rule for turning agiven pixel on. In conventional blue noise screening methods, pixels arerandomly turned on and then re-distributed according to differentpreferred rules. In Werner Purgathofer et al., “Improved ThresholdMatrices for Ordered Dithering,” Graphic Gems V, pp. 297—301 (1995), anapproach is discussed whereby pixels are randomly turned on according toan equal distribution. Thus, one criteria for judging a stochasticdither mask is based upon how suitably randomness is added in thepattern provided by the mask.

The present invention provides a method of rendering a halftone image byutilizing a pixel-by-pixel comparison of an image against a stochasticdither matrix. The halftone rendering process includes printing dotpatterns on a recording medium wherein the dot patterns are representedby the dither matrix. The present invention advantageously provides astochastic dither matrix (mask) wherein randomness or regularity can beeasily selected because the variation of a pattern in the dither matrixcan be precisely controlled from a regular structure to a randomstructure. This feature is absent in conventional approaches. Inparticular, the present invention permits the variation of dot patternsfrom regular patterns to blue noise patterns. The method in accordancewith the invention integrally modulates the dot number (frequency), dotsize (amplitude) and dot shape at each gray level during the generationof the dither matrix. The halftone patterns that are generated thereforehave a visually pleasing blue noise attribute. Thus, the invention willpermit the production of a “crispy” image that is free from a moirépattern. Furthermore, the screening method in accordance with thepresent invention provides flexible solutions to the different types ofprinting processes.

FIG. 1A is a schematic block diagram of a computer system 50 that cangenerate a halftone image by use of a dither matrix in accordance withthe present invention. However, the dither matrix of the presentinvention may be also be used in other image rendering systems. Thecomputer system 50 is controlled by a central processing unit (CPU) 52such as a conventional microprocessor. The CPU 52 is connected via bus54 to the following components: a random-access-memory (RAM) 56 fortemporarily storing information; a read-only-memory (ROM) 58 forpermanently storing the computer's configuration and basic operatingcommands; and an input/output (I/O) adapter 60 for connecting the diskdrive 62, printer 64 or other peripheral devices to the bus 54. A userinterface adapter 66 connects a keyboard 68 (or other types of userinput devices) to the bus 54. A display adapter 70 connects the bus 54to the display device 72. A dither matrix in accordance with the presentinvention is stored in a programmable read-only memory (PROM) 74 that isdisposed in the computer system 50. Alternatively, the PROM 74 may formpart of the printer 64 or other binary output device for generating ahalftone image.

Referring now to FIG. 1B, there is shown an overview of a method ofgenerating a stochastic dither matrix in accordance with a preferredembodiment of the present invention. The dither matrix is generated fromindividual seed patterns by use of and by programming any suitablestochastic threshold array generator. The method of generating thedither matrix includes the following steps which are described morefully hereinbelow: performing a dot nucleation (seed pattern generation)phase 100, performing a dot growth phase 105, and performing a dotpattern uniformization phase 110. The method illustrated in FIG. 1Bdiffers from conventional blue noise dithering techniques (whichtypically use dot profiles). In addition, conventional approaches teachonly dot number modulation for blue noise dithering.

The above steps 100, 105 and 110 each includes the use of a filtercontrolled force masking technique for generating the dither matrix. Thefilter controlled force masking technique includes the application of aforce field function that determines the probability of assigning avalue to a given pixel, (i.e., to turn on this given pixel). The forcefield function simulates the force field electrostatic charge of an “ON”pixel and is preferably a radially symmetric function. The force fieldfunction is also preferably an inverse function of distance between an“ON” pixel and an “OFF” pixel of interest, so that the functionsimulates the repulsive force field of the electrostatic charge of printdots. The force field value of a diagonal neighbor of an “ON” pixel ispreferably less than the force field value of a horizontal neighbor ofthe “ON” pixel. This characteristic of the force field function causesthe dot nuclei to first grow in a diagonal direction. This diagonal dotpattern is favored by the human eye because the eye has maximumsensitivity in the horizontal and vertical directions and minimumsensitivity in the diagonal directions.

One suitable repulsive force field function that may be used is shown inequation (1).

f=f(r)=exp(−(r/s)^(p))  (1)

The function in equation (1) is also described by Purgathofer et al. inthe above-cited article entitled “Improved Threshold Matrices forOrdered Dithering,” Graphic Gems V, pp. 297-301. The parameter f is therepulsive field, while r is the radial distance between the “ON” pixeland the “OFF” pixel to be turned on. The variables p and s are alsoparameters of the repulsive force field function, and are assignedvalues based on error and trial. For example, p may have a value rangingfrom about 0.4 to about 0.6, while s may have a value of about 0.5. Theforce field matrix value inversely corresponds to the mask value. Forexample, the pixel that is first turned on has the maximum force fieldvalue.

Other suitable functions with the above mentioned characteristics ofequation (1) may be used to form a force field for influencing thepattern of the dither matrix.

The increment force value of each “OFF” pixel is calculated withequation (1), and is added to a force field matrix. Then the force fieldmatrix is filtered in the frequency domain by a low pass filter whereinthe low pass filter corresponds to an eye model with gray leveladaptation. The low pass filter parameters controls the forcedistribution and thereby controls the variation of the mask patterns(from a regular structure to a random structure). Thus, the low passfilter permits the generation of a mask pattern that is favored by humaneyes. The low pass filter may be a Gaussian filter that adapts to thegray level and is represented by, for example, equation (2).

H=exp(−R ²/2σ²))  (2)

The parameter R is the distance from the center of the“region-of-support” (wherein the region-of-support defines the areacovered by the filter when its response is about 0.1% of its normalizedpeak value). The parameter σ is the filter width and can be expressed byequation (3).

σ=f _(g) a  (3)

The control parameter “a” is determined depending on how much dotpattern regularity is controlled. The range of parameter “a” can be fromabout 0.1 to about 8.0. For example, a 64×64 mask generated when a=0.1,p=0.5, and s=0.5 gives a regular dot pattern in a light tone part, whileanother 64×64 mask generated when a=8, p=0.5, and s=0.5 gives a veryrandom dot pattern. The principal frequency f_(g) is a function of thenormalized tone level g, as shown in equation (4) and as described in R.Ulichney, Digital Halftoning pp. 234-238, MIT Press (1987).

f _(g) =g ^(0.5) for g≦0.5 and f _(g)=(1−g)^(0.5) for g>0.5  (4)

The principal frequency f_(g) is the cutoff frequency for a blue noisepower spectrum, while g is the gray level normalized to one (1).

The force field f is filtered with the Gaussian Filter H in thefrequency domain, as shown in equation (5).

F=F′H  (5)

It is further noted that in accordance with the present invention, othersuitable low-pass filters may be used such as a Butterworth filter.

Reference is now made to FIG. 2 for the purpose of illustrating thewrap-around property of a mask. An original block 200 with M×Minformation is shown as having a reference pixel 205 for discussionpurposes. A macro block 210 with 3M×3M information is created by copyingthe original block 200 while the force field f is updated (i.e., theforce field is recalculated based on the “ON” pixels in macro block210). The center block 200′ in the 3M×3M macro block 210 corresponds tothe original block 200. When a pixel 205′ in the center block 200′ isturned on, the corresponding eight (8) pixels 215 a-215 h with the samecoordinate in eight (8) neighborhoods 220 a-220 h are also turned on.Among the neighbors of an “ON” pixel (e.g., pixel 205′), the force valuef of a diagonal neighbor of pixel 205′ is less than the force value f ofa horizontal neighbor of pixel 205′. As stated above, due to this forcecharacteristic, the dot nuclei tend to first grow in a diagonaldirection.

After a pixel is turned on (e.g., pixel 205′), the eight (8)corresponding pixels 215 a-215 h are also turned on. The 9 pixels thatare on (i.e., pixels 205′ and 215 a-215 h) affect the force value f ofother pixels in the center block 200′. The increment force values ofeach “OFF” pixel associated with a given one of the 9 “ON” pixels arethen calculated, and the total increment force amount of each “OFF”pixel is obtained by summing those 9 individual increment force valuesof an “OFF” pixel. For example, to calculate the increment force valueof the “OFF” pixel 225, the radial distance between the correspondingpixel 225′ of “OFF” pixel 225 and one “ON” pixel 205′ is calculated, andso one increment force value f is obtained with equation (1) withrespect to “OFF” pixel 225′ and “ON” pixel 205′. The increment forcevalue with respect to pixel 225′ and another “ON” pixel 215 a, forinstance, is also then calculated. The increment force values withrespect to pixel 225′ and each of the other “ON” pixels 215 b-215 h arealso then obtained respectively. The total increment force field valueof the “OFF” pixel 225 is obtained by summing those 9 increment forcefield values.

Because a pixel is set “ON” and will be left alone, only the force fieldvalues of “OFF” pixels need to be precisely calculated. For “ON” pixels(e.g., pixel 205), the increment force field value is set at asufficiently large amount of, for example, 0.3.

FIG. 3 illustrates a method of updating the force field matrix after aparticular pixel is set “ON”. The method of FIG. 3 may be used toimplement step 320 in the modulation phase 100 a in FIG. 4 and in themodulation phase 100 b in FIG. 5. The method of FIG. 3 may also be usedto implement step 510 in FIG. 8 and step 610 in FIG. 9. In step 320 a,the parameters p and s of the force field function are selected and theprevious force field is inputted. In step 320 b, a given pixel (io,jo)(with coordinates io,jo) is set “ON” based on its force field value. Thedetails for setting “ON” a given pixel (io,jo) is discussed withreference to step 330 in FIGS. 4 and 5, step 520 in FIG. 8, and step 620in FIG. 9. Step 320 c initializes horizontal and vertical coordinates(i, j) of pixels in the mask to zero. Test 320 d determines whether thecurrent pixel is “OFF”. If the current pixel is not “OFF”, the methodproceeds to step 320s wherein a value of about 0.3 is added to the forcefield f. The method then proceeds to step 320 n.

In test 320 d if the current pixel is “OFF”, then the method proceeds tostep 320 e and the neighborhood indexes (in, jn) are initialized to zero(e.g., pixel 215 g in FIG. 2 is started or turned “ON”). In step 320 f,the horizontal distance Δx between the current pixel (e.g., pixel 225′in FIG. 2) and the “ON” pixel (io, jo) (e.g., pixel 205′ in FIG. 2) orits corresponding “ON” pixels (e.g., pixels 215 a-215 h in FIG. 2) isdetermined as the absolute value of (in *N+i)−(N+io), assuming the maskhas the size N×N. The vertical distance Δy is the absolute valueof(jn*N+j)−(N+jo). Step 320 h determines the radial distance “r” asequal to (Δx²+Δy²)^(0.5). In step 320 i, the increment force field isobtained by adding the calculated equation (1) value to the previousforce field f(i, j) value.

Step 320 j checks whether the neighborhood column index (in) has reached2 (wherein (in)=2 means the end of a current row in a neighborhood hasbeen reached). If not, the method proceeds to step 320 k to incrementcolumn index (in), and steps 320 f to 320 j are again performed. If, instep 320 j, the neighborhood column index (in) has reached 2, then themethod proceeds to step 320 l.

If, in step 320 l, the neighborhood row index (jn) has not reached 2(wherein (jn)=2 means the last row in the neighborhood has beenevaluated), then the method proceeds to step 320 m wherein (jn) isincremented and (in) is reset. The method then again performs steps 320f to 320 l to calculate the next increment force field value of thecurrent “OFF” pixel (i, j). If, in step 320 l, the neighborhood rowindex (jn) has reached 2, then the last row has been evaluated in theneighborhood, and the method proceeds to step 320 n to test whether themask matrix column index (i) has reached the end of the current row. Ifnot, then in step 320 o the column index (i) is incremented and themethod proceeds to step 320 d to examine next pixel (i,j). If the maskmatrix column index (i) has reached the end of the current row, then themethod proceeds to test 320 q. At the end of a current row, test 320 qdetermines whether the current row is the last row in the mask matrix.If not, the method increments the mask matrix row index (j) and resets(i) in step 320 r and then returns to step 320 d. The process isrepeated until the force field values of all pixels in the matrix areupdated. If the current pixel is the last one in the matrix, i.e., i=Nand j=N, the method proceeds to step 320 p and then returns to the mainprocedure in FIGS. 3, 4, 8, or 9.

After the force field matrix of the mask is updated, the force field ismodified by filtering with a low pass filter, such as the gray-leveladaptive Gaussian filter mentioned above. This low pass filter controlsthe variation of the mask pattern from a regular structure to a randomstructure.

As described in the overview of FIG. 1, there are three phases for maskgeneration: dot nucleation (seed pattern generation) phase 100, dotgrowth phase 105, and dot pattern uniformization phase 110. These phasesare now discussed in detail, with continuing reference to the aboveforce field equation f=exp(−(r/s)^(p)) and filter (Gaussian field)equation H=exp(−r²/2σ²) wherein σ=f_(g)/a.

Phase I—Dot Nucleation Phase (step 100 in FIG. 1B)

During the dot nucleation phase 100, the dot size to be used depends onprintability. For example, 1×1 dot size may be used for 600 dpi, while1×3 dot size may be used for 1200 dpi. However, each dot nucleus mayhave its own shape, for example, shapes “/”, “---”, and “T”, whichshould make the dot pattern as uniform as possible. The size of a dotnucleus is determined by the force field f.

FIG. 4 illustrates a flow diagram of a nucleation phase 100 a for anuclei size of pixel 1×1 per dot. The nucleation phase 100 a is oneembodiment of the nucleation phase 100 which is illustrated in FIG. 1B.In step 300, the dither matrix M (which is assumed as a square matrix ofN by N) and the force field matrix f (also with the size N by N) areinitialized. For example, M and f are set equal to zero (i.e., all pixelvalues in the mask matrix are set to zero). The total “ON” number Nt(i.e., total “ON” pixels) is initialized to zero, while the current graylevel “ON” counter k for indicating the current gray level is alsoinitialized to zero.

Assuming the maximum gray level value is g_(max), in step 305 the dithermatrix M is set at a value greater than the maximum gray level g_(max).For example, the dither matrix M is set equal to about g_(max)+1. Thecurrent gray level g is also set at the maximum gray level g_(max). Forexample, in a gray scale of 0-255, the maximum gray level is 255 andg_(max)+1 is 256 (=255+1).

In step 310, a pixel is randomly selected and assigned the value g,thereby turning the selected pixel “ON”. In step 315, the current graylevel “ON” number K is set as N²/ (g_(max)+1), or found according to atone transfer curve or calculated reflectance. In the followingdescription, all K value settings are based on N²/(g_(max)+1).

As illustrated in FIG. 3, the force field calculation in step 320updates the force field after a pixel is turned on in step 310. In step325, the force field f is filtered with a low pass filter such as theGaussian filter based on the equation H=exp(−r²/2σ²). The filteringprocess is a two-dimensional convolution, whose general discussion canbe found in John, C., Russ, “The Image Processing Handbook”, CRC Press,1995, and is known to those skilled in the art. After filtering, theforce distribution is changed and then the probability distribution ofdot turnon is affected.

In step 330, a part (portion) is randomly selected among the “OFF”pixels. For example, one-half of the portion of the “OFF” pixels israndomly selected, and the force field values at these pixels arecompared. The pixel having the minimum force field value among therandomly selected group of “OFF” pixels is identified and determined inposition (x, y). In step 335, this identified pixel is set “ON”, i.e.,assigned the current tone level value g so that M(x,y)=g. Furthermore,the total “ON” number Nt and the current gray level “ON” counter k areboth updated or incremented (i.e., Nt=Nt+1 and k=k+1) since a selectedpixel has been turned on in step 330.

A parameter Nts represents the nucleation number and is set based on howmany pixels can be regularly distributed in an N by N plane. Forexample, for a nuclei size of pixel 1×1 per dot, the nucleation numberNts can be set at about N²/16. In step 340, the method determines if thetotal “ON” number Nt has reached the nucleation number Nts. If not, thenthe condition Nt<Nts is still valid and the method checks in step 345whether the current gray level “ON” counter k has reached the currentgray level “ON” number K wherein K has been previously determined instep 315. Alternatively, if in step 340 the total “ON” number Nt hasreached the nucleation number Nts (i.e., Nt≧Nts), then the thresholdamount of pixels has been turned on and the dot growth phase 105 isstarted 350.

In step 345, if the current gray level “ON” counter k is smaller thanthe current gray level “ON” number K (i.e., k<K), then the methodrepeats steps 320-340. In particular, the force field f is againcalculated (step 320) and the force field is filtered with a low passfilter such as the Gaussian filter represented in equation (2) (step325). The force field f is recalculated in step 320 because a new pixelwas turned on step 335 during last loop process, and, therefore, theforce field should be changed. A portion of the “OFF” pixels is againrandomly selected and the force values at these randomly selected “OFF”pixels are compared (step 330). The pixel having the minimum force valueamong the randomly selected group of “OFF” pixels is identified anddetermined in position (x, y). This identified pixel (at coordinates(x,y)) is set “ON”, i.e., assigned the current tone level value g sothat M(x,y)=g (in step 335). Furthermore, the total “ON” number Nt andthe current gray level “ON” counter k are both updated or incremented(i.e., Nt=Nt+1 and k=k+1) since another identified pixel in step 330 hasbeen turned on in step 335.

If, in step 345, the current gray level “ON” counter k has reached thecurrent gray level “ON” number K (i.e., k=K), then k is reset to zeroand g is reduced by one (1) gray scale (i.e., g=g−1), as shown in step355. By resetting the current gray level “ON” counter k to zero andreducing g by one gray scale, the next gray level generation is started.The steps 315 through 340 are then repeated whereby a current gray level“ON” number K is again calculated in step 315 until the total gray levelnumber of “ON” bits corresponds to the present tone level.

FIG. 5 shows a flowchart of a nucleation phase or method 100 b for anuclei size that is larger than pixel 1×1 per dot. The nucleation phase100 b is a second embodiment of the nucleation phase 100 which isillustrated in FIG. 1B. The nucleation phase 100 b in FIG. 5 includesthe steps discussed with reference to FIG. 4. Additionally, in step 300,the required turnon number, Nrn, of neighbors of a current “ON” pixel(nucleus) is specified according to printability of printer. Forexample, for 1200 dpi laser printer, the required turnon number, Nrn, ofneighbors of a current “ON” pixel can be 2, so that the dot nuclei has asize of 1×3 pixels. Moreover, nuclei growth steps 336 and 338 areperformed after performing the step 335 of setting “ON” a given pixelhaving the minimum force value f among the randomly selected group of“OFF” pixels. In particular, after a given pixel is set “ON” in step335, some neighbors of the “ON” pixel are also set “ON”. According tostep 336, the neighbors of this nucleus are ranked based on theirrespective force values. In step 338, an Nrn number of neighbors of thisnucleus is then set “ON” based on their force value rankings. Theneighbor with the smallest force value f is the first pixel to be set“ON”. If Nrn=2, then another neighboring pixel with the second smallestforce value in the neighborhood is also set “ON”. In addition, thecurrent gray level “ON” counter k is incremented as shown in equation(6).

k=k+Nrn  (6)

Furthermore, the total “ON” number Nt is incremented as shown inequation (7).

Nt=Nt+Nrn  (7)

The current gray level “ON” counter k and total “ON” number Nt are eachincremented by the required turnon number of neighbors of nucleus, Nrn,because an Nrn number of neighbors have been set “ON”.

FIG. 6 shows the coordinates of the 8 neighbors of a given “ON” pixelwherein nx and ny are the width and height of dither ask, respectively.In sector 400, if the given “ON” pixel has coordinate (i, j ), thepixels with coordinates (i−1,j−1), (i−1,j), (i−1,j+1), (i,j−1), (i,j+1),(i+1,j−1), (i+1,j ), and (i+1,j+1) are 8 neighbors that are possiblyturned “ON”. Sectors 405, 410, 415 and 420 illustrate the coordinates ofthe 8 neighbors of a given “ON” pixel when it is in the left lowercorner, in the right lower corner, the right upper corner, and the leftupper corner of the mask, respectively. For example, in sector 420, thepixels with coordinates (nx, ny), (nx, 1), (nx, 2), (1, ny), (1,2), (2,ny), (2, 1), and (2, 2) are 8 neighbors that are possibly turned “ON” ifthe pixel (1,1) is “ON”.

As stated above, the neighbor with the minimum force is set “ON” first.Since the force field function f has an internal diagonal correlationcharacteristic, the seed shape is often “/” or “\” (i.e., 45° angled ordiagonal).

The seed dot pattern can have regular characteristics or blue noisecharacteristics depending on the filter parameters that are selected.For example, to obtain a seed dot pattern with regular characteristics,the following filter parameter values are chosen: a=1, p=0.6 and s=0.5.The dot pattern 450 with regular characteristics is illustrated in FIG.7(a), which was obtained at gray level=240. To obtain a seed dot patternwith blue noise characteristics, the following filter parameter valuesare chosen: a=3, p=0.5 and s=0.5. The dot pattern 455 with blue noisecharacteristics is illustrated in FIG. 7(b), which was obtained at graylevel=240.

In FIG. 7(c), a seed pattern 460 and its Radially Averaged PowerSpectrum (RAPS) 465 are shown. In the graph of RASP 465, the powerspectrum in the low frequency part is cut off and the power spectrum inthe higher frequency (i.e., blue noise spectrum) is shown. The RAPS ofseed patterns is further described in R. Ulichney, Digital Hatftoning.FIG. 7(c) shows the generated seed pattern 460 to have a very good bluenoise attribute. Since the single dots in seed pattern 460 are sparselyand randomly distributed, for color halftoning, there is no rosettestructure, and so the registration requirement can be relaxed. The dotsin seed pattern 460 are smaller than clustered macrodots such that theimage resolution is higher.

Phase II—Dot Growth Phase (step 105 in FIG. 1B)

When the macrodots (for dot size larger than 1×1 pixel) or the singledots (for dot size of 1×1 pixel) tend to touch together, the dot growthphase 105 (FIG. 1B) is triggered. As mentioned above, in particular, thedot growth phase 105 is triggered when the nuclei number Nts (step 340in FIG. 4) of a single dot increases to about {fraction (1/16)} of thetotal pixel number. Similarly, the dot growth phase 105 is triggeredwhen the nuclei number Nts of macrodots preferably increases to about{fraction (1/32)} of the total pixel number in the dither matrix. Theabove numbers for triggering dot growth may be changed for differentprinters.

Eight (8) possible “OFF” neighbors of a single “ON” dot are consideredfor potential dot growth places. Reference is again made to FIG. 6 toshow which neighborhood is chosen for dot growth. A dot growth positionshould have the minimum force field value among those neighbors.

Referring now to FIG. 8, there is shown a flowchart that illustrates amethod for performing dot growth after completion of the dot nucleationphase 100. In step 500, the neighbor “OFF” array of all nuclei N areidentified according to FIG. 6. This neighbor array includes all “OFF”pixels in 8 neighbors of all “ON” pixels, but one “OFF” pixel onlyappears once as an element of the array. In step 505, the current graylevel “ON” number K is set to, for example, N²/(g_(max)+1). The forcefield f is updated in step 510 (see FIG. 3) and filtered by a low passfilter in step 515.

The pixel M(x,y) with the minimum force value among the neighbor array Nis identified in step 520 and set “ON” (i.e., M(x,y)=g) in step 525. Thecurrent gray level “ON” counter k is also updated (incremented) in step525 since the pixel M(x,y) has been set “ON”. In step 530, the value ofthe current gray level “ON” counter k is compared to the value of thecurrent gray level “ON” number K. If the current gray level “ON” counterk is less than the current gray level “ON” number K, then steps 510-525are repeated until all available “ON” pixels correspond to the tone inthe current gray level. If, in step 530, the current gray level “ON”counter k reaches the current gray level “ON” number K, then the methodproceeds to step 535.

In step 535, it is determined whether the current gray level g hasreached the uniformization gray level flag g_(unif), wherein theuniformization gray level flag g_(unif) represents the flag to triggerthe uniformization phase 110. The uniformization gray level flagg_(unif) is determined by error and trial and is set so that themacrodots do not grow too large in size. As an example, starting fromsingle dot nucleation for 600 dpi printing, the value of g_(unif) can be160 while the gray level range is 0-255. If, in step 535, the currentgray level g has not reached the uniformization gray level flag g_(unif)(i.e., g>g_(unif) is still valid), then the method proceeds to step 540whereby k is reset to zero, g is reduce by one (1), and next gray levelgeneration is started (steps 505-530). Steps 505-530 are repeated untilall gray levels above g_(unif) of have been included in the mask matrix.

If, in step 535, the current gray level g has reached g_(unif), then themethod proceeds to step 545 so that the dot pattern uniformization phase110 is started.

Phase III—Dot Pattern Uniformization Phase (step 110 in FIG. 1B)

After the dot size grows to a certain size, the second nucleation phase110 is initiated to make the dot pattern uniform. The single pixels areto be turned on to produce a high end level image with high resolution.Referring now to FIG. 9, there is shown a flowchart of a secondnucleation phase 110 for achieving dot pattern uniformization. In step600, the current gray level “ON” counter k is initiated to k=0. In step605, the current gray level “ON” number K is determined according toN²/(g_(max)+1) or according to another suitable tone transfer curve (orcalculated reflectance).

After the current gray level “ON” number K is determined, the forcefield f is calculated in step 610 and filtered by a low pass filter instep 615. In step 620, a portion of the “OFF” pixels is randomlyselected, and the force field values at these pixels are compared. Instep 625, the pixel having the minimum force value among these randomlyselected “OFF” pixels is set “ON” (i.e., assigned the current tone levelvalue g) so that M(x,y)=g. The current gray level “ON” counter k is alsoincremented since the selected pixel is turned on in step 625.

In step 630, the current gray level “ON” counter k is compared with thecurrent gray level “ON” number K. If k is smaller than K, then steps610-630 are again performed whereby the force field f is againcalculated (step 610 in FIG. 5) and k is again incremented (step 625).The cycle 610-630 is again performed until the total gray level numberof “ON” bits corresponds to the present tone level. If, in step 630, thecurrent gray level “ON” counter k has reached K, then the methodproceeds to step 635 whereby the current gray level g is compared withthe minimum gray level value g_(min). The value of the minimum graylevel value g_(min) is set based upon printability, and generally it iszero (0) in value.

If, in step 635, the current gray level g has not reached the minimumgray level value g_(min) (i.e., g>g_(min)), then the method proceeds tostep 640 whereby k is reset to zero, and g is reduced by one (1) grayscale to start next gray level generation. The method then repeats steps605-630 until all of available gray levels (e.g., 256 levels) have beenincluded in the mask matrix.

If, in step 635, the current gray level g has reached the minimum graylevel value g_(min), then the method proceeds to step 645 whereby thepixels with the matrix M values of g_(max)+1 are set as g_(min). Step645 sets all left “OFF” pixels “ON” and assigns the lightest tone levelvalue to these pixels. The mask generation is thus finished in step 650.

FIGS. 7(b), 10(a), 10(b) and 11(a) to 11(d) show how the dot patternssequentially change from the dot nucleation phase to the dot growthphase, and from the dot growth phase to the dot pattern uniformizationphase and to the finished mask. All dot patterns were obtained at a=3,p=0.5, and s=0.5. FIGS. 7(b), 10(a), and 10(b) illustrate a maskgeneration starting from nucleus with single dot (for 600 dpi printing),while FIGS. 11(a) to 11(c) are to illustrate a mask generation startingfrom nucleus with 1×3 pixels per dot (for 1200 dpi printing).

FIG. 7(b) shows a dot pattern 455 at gray level=240 during the dotnucleation phase 100, and so all dots are single dots. FIG. 10(a) showsa dot pattern 700 at gray level=208 during the dot growth phase 105, andso some dots are 1×2 pixels per dot, and some are 1×3 pixels per dot.FIG. 10(a) also shows that those macrodots have the shapes “/” or “\”(i.e. 45° angled or diagonal). FIG. 10(b) shows a dot pattern 705 atgray level=15 during the dot uniformization phase 110. After someuniformization steps, “OFF” dots (white dots) are each of a single pixeland suitable for interpreting images in a shadow area with highresolution.

FIG. 11(a) shows a dot seed pattern 800 at gray level=232 during the dotnucleation phase 100, and so all dots are 1×3 pixels per dot with shapes“/”, “\”, or “v”. FIG. 11(b) shows a dot pattern 805 at gray level=200during the dot growth phase 105. Macrodots have different sizes (largerthan 5 pixels per dot). FIG. 11(c) shows a dot pattern 810 at graylevel=50 during the dot uniformization phase 110, where some smallerdots (for example, 1×3 pixels per dot) make the pattern more uniform andare more suitable for interpreting image details in a shadow area. FIG.11(d) shows a dot pattern 815 at gray level=2 in the end ofuniformization phase. Again, “OFF” dots (white dots) are single dots(1×1 pixel).

FIG. 12 shows various images (600 dpi) that are generated by use of thedither matrix in accordance with the present invention. FIG. 13 showsvarious images (1200 dpi) that are generated by use of the dither matrixin accordance with the invention.

From the above description, it will be apparent that the inventiondisclosed herein provides a novel and advantageous stochastic screeningmethod that generates halftone patterns with a visually pleasing bluenoise attributes. The foregoing discussion discloses and describesmerely exemplary methods and embodiments of the present invention. Aswill be understood by those familiar with the art, the invention may beembodied in other specific forms without departing from the spirit oressential characteristics thereof. Accordingly, the disclosure of thepresent invention is intended to be illustrative, but not limiting, ofthe scope of the invention, which is set forth in the following claims.

What is claimed is:
 1. A method of generating a dither matrix forrendering a halftone image, the dither matrix forming a final patternupon completion, the method comprising the steps of: modulating the dotnumber in a dot pattern for forming the dither matrix; modulating thedot size in the dot pattern for forming the dither matrix; andperforming a dot pattern uniformization phase to achieve the finalpattern for the dither matrix.
 2. The method of claim 1 wherein the stepof performing the dot pattern uniformization phase comprises: (a3)initializing a current gray level “ON” counter k that indicates thecurrent gray level; (b3) finding a current gray level “ON” number Kaccording to a tone transfer curve; (c3) updating each force field valueassociated with each pixel in the dot pattern; (d3) filtering eachupdated force field value of step (c3); (e3) selecting a portion of“OFF” pixels in the dot pattern, turning “ON” an “OFF” pixel with aminimum force field value among the selected “OFF” pixels, andincrementing the current gray level “ON” counter k; (f3) repeating steps(c3) to (e3) until the current gray level “ON” counter k reaches thecurrent gray level “ON” number K; and (g3) decrementing the current graylevel value g, initializing the current gray level “ON” counter k, andrepeating steps (b3) to (e3) until the current gray level value gdecreases to a second predetermined gray level value g_(min); and (h3)assigning the second predetermined gray level value g_(min) to anyremaining “OFF” pixels in the dot pattern.
 3. The method of claim 1further comprising: applying a force field to determine the probabilityof turning “ON” a pixel in the dither matrix.
 4. The method of claim 3further comprising: frequency-domain filtering the force field.
 5. Themethod of claim 1 wherein the step of performing the dot patternuniformization phase comprises: (a6) initializing to zero the value of acurrent gray level “ON” counter k for indicating the current gray levelin the dither matrix, and setting the value of a current gray level g toa maximum gray level value g_(max); (b6) setting a current gray level“ON” number K according to a tone transfer curve; (c6) updating a forcefield value f associated with each pixel in the dither matrix; (d6)filtering the force field value f; (e6) selecting a portion of aplurality of “OFF” pixels in the dither matrix; (f6) turning “ON” an“OFF” pixel that has a minimum force value f among the selected “OFF”pixels in step (e6), and incrementing the value of the current graylevel “ON” counter k; (g6) comparing the value of the current gray level“ON” counter k to the value of the current gray level “ON” number K;(h6) if, in step (g6), the value of the current gray level “ON” counterk is less than the value of the current gray level “ON” number K, thenrepeating steps (c6) to (g6); (i6) if, in step (g6), the value of thecurrent gray level “ON” counter k rises to the value of the current graylevel “ON” number K, then comparing the value of the current gray levelg with a second predetermined gray level value g_(min); (j6) if, in step(i6), the value of the current gray level g is greater than the value ofthe second predetermined gray level value g_(min), then decrementing thevalue of the current gray level g, resetting to zero the value of thecurrent gray level “ON” counter k, and repeating at least some of thesteps (b6) to (i6); (k6) if, in step (i6), the value of the current graylevel g decreases to the value of the second predetermined gray levelvalue g_(min), then assigning the second predetermined gray level valueg_(min) to any remaining “OFF” pixels in the dither matrix.
 6. A methodof generating a dither matrix for rendering a halftone image, the dithermatrix forming a final pattern upon completion, the method comprisingthe steps of: modulating the dot number in a dot pattern for forming thedither matrix; modulating the dot size in the dot pattern for formingthe dither matrix; and applying a force field in at least one of thesteps of modulating the dot number and modulating the dot size whereinthe force field determines the probability of turning “ON” a pixel inthe dither matrix.
 7. The method of claim 6 wherein the force fieldcauses a dot nuclei in the dither matrix to first grow in asubstantially diagonal direction.
 8. The method of claim 6 wherein theforce field is a radially symmetric function.
 9. The method of claim 6wherein the force field is an inverse function of a distance from apixel that is “ON” in the dither matrix.
 10. The method of claim 6wherein the force field is based on the function: f=exp(−(r/s)^(p)),wherein r is the radial distance from a pixel that is “ON” to aparticular pixel that is “OFF” in the dither matrix, and wherein s and pare assigned values based on trial and error.
 11. The method of claim 6further comprising: frequency-domain filtering the force field.
 12. Amethod of generating a dither matrix for rendering a halftone image, thedither matrix forming a final pattern upon completion, the methodcomprising the steps of: modulating a dot number in a dot pattern forforming the dither matrix; and modulating the dot size in the dotpattern for forming the dither matrix; wherein the step of modulatingthe dot number comprises (a1) initializing a current gray level “ON”counter k that indicates the current gray level, setting a current graylevel value g to a maximum value, and turning “ON” a first pixel in thedot pattern for forming the dither matrix; (b1) finding a current graylevel “ON” number K according to a tone transfer curve; (c1) updatingeach force field value associated with each pixel in the dot pattern;(d1) filtering each updated force field value of step (c1); (e1)selecting a portion of “OFF” pixels in the dot pattern, turning “ON” an“OFF” pixel with minimum force field among the selected “OFF” pixels,and incrementing the current gray level “ON” counter k; (f1) repeatingsteps (c1) to (e1) until a threshold amount of pixels in the dot patternare turned “ON” and, alternatively, until the current gray level “ON”counter k reaches the current gray level “ON” number K; and (g1)decrementing the current gray level value g, initializing the currentgray level “ON” counter k, and repeating steps (b1) to (e1) until thethreshold amount of pixels in the dot pattern are turned “ON”.
 13. Themethod of claim 12 further comprising: after step (e1), ranking aselected group of neighboring pixels near an “ON” pixel based upon theassociated force field value of each pixel in the selected group; andturning “ON” in sequence a predetermined number Nrn of pixels in theselected group and proceeding to step (f1).
 14. A method of generating adither matrix for rendering a halftone image, the dither matrix forminga final pattern upon completion, the method comprising the steps of:modulating the dot number in a dot pattern for forming the dithermatrix; and modulating the dot size in the dot pattern for forming thedither matrix; wherein the step of modulating the dot size comprises(a2) identifying a neighbor array of “OFF” pixels for each “ON” pixel inthe dot pattern, and initializing a current gray level “ON” counter kthat indicates the current gray level; (b2) finding a current gray level“ON” number K according to a tone transfer curve; (c2) updating eachforce field value associated with each pixel in the dot pattern; (d2)filtering each updated force field value of step (c2); (e) turning “ON”an “OFF” pixel that has a minimum force value f in an identifiedneighbor array of step (a2), and incrementing the current gray level“ON” counter k; (f2) repeating steps (c2) to (e2) until the current graylevel “ON” counter k reaches the current gray level “ON” number K; and(g2) decrementing the current gray level value g, initializing thecurrent gray level “ON” counter k, and repeating steps (b2) to (e2)until the current gray level value g decreases to a first predeterminedgray level value g_(unif).
 15. A method of generating a dither matrixfor rendering a halftone image, the dither matrix forming a finalpattern upon completion, the method comprising the steps of: modulatingthe dot number in a dot pattern for forming the dither matrix; andmodulating the dot size in the dot pattern for forming the dithermatrix; wherein the step of modulating the dot number comprises thesteps of (a4) initializing to zero a plurality of parameters including atotal “ON” number Nt for indicating the “ON” pixels in the dithermatrix, a current gray level “ON” counter k for indicating the currentgray level in the dither matrix, and a force field value f, and settinga nucleation number Nts to a predetermined value; (b4) setting a dithermatrix value M to greater than a maximum gray level g_(max), and settingthe value of a current gray level g to the maximum gray level g_(max);(c4) turning “ON” a first selected pixel in the dither matrix; (d4)setting a current gray level “ON” number K according to a tone transfercurve; (e4) updating a force field value f associated with each pixel inthe dither matrix; (f4) filtering the force field value; (g4) selectinga portion of a plurality of “OFF” pixels in the dither matrix; (h4)turning “ON” a pixel that has a minimum force field value f among theselected “OFF” pixels in the step (g4), incrementing the values of thecurrent gray level “ON” counter k and the total number Nt of “ON”pixels, and comparing the value of the total number Nt of “ON” pixelswith the value of the nucleation number Nts; (i4) if, in step (h4), thetotal number Nt of “ON” pixels has reached the nucleation number Nts,then proceeding to the step of modulating the dot size in the dotpattern for forming the dither matrix; (j4) if, in step (h4), the totalnumber Nt of “ON” pixels is less than the nucleation number Nts, thencomparing the value of the current gray level “ON” counter k to thevalue of the current gray level “ON” number K; (k4) if, in step (j4),the value of the current gray level “ON” counter k is less than thevalue of the current gray level “ON” number K, then repeating at leastsome of the steps (e4) to (j4); and (l4) if, in step (j4), the value ofthe current gray level “ON” counter k has reached the value of thecurrent gray level “ON” number K, then decrementing the current graylevel g, setting the value of the current gray level “ON” counter k tozero, and repeating at least some of the steps (d4) to (j4).
 16. Themethod of claim 15 further comprising: setting the parameters of afilter for filtering the force field value f.
 17. The method of claim 15wherein the tone transfer curve in step (d4) is N²/(g_(max)+1) andwherein the dither matrix has a size of N by N.
 18. The method of claim15 further comprising: after step (h4), ranking a selected group ofneighboring pixels near an “ON” pixel based upon the associated forcefield value of each neighboring pixel in the selected group; turning“ON” in sequence a predetermined number Nrn of the neighboring pixels inthe selected group; and incrementing the values of the current graylevel “ON” counter k and the total “ON” number Nt by the predeterminednumber Nrn, and proceeding to step (i4).
 19. The method of claim 18wherein the predetermined number Nrn is set based upon the printabilityof a printer for printing the halftone image.
 20. The method of claim 15wherein the step (e4) of updating the force field value f comprises: (i)providing an initial force field value to each pixel in the dithermatrix; (ii) in response to a pixel that is turned “ON” at givencoordinates (io,jo), determining if a pixel at coordinates (i,j) in aselected neighborhood defined by the neighborhood indexes (in,jn) iseither “ON” and, alternatively, “OFF”; (iii) if the pixel at coordinates(i,j) is “OFF”, then initializing the neighborhood indexes (in,jn); (iv)determining an incremental force field value with respect to the pixelat coordinates (i,j) and the “ON” pixel at coordinates (io,jo); (v)adding the incremental force field value of step (iv) to the initialforce field value of the pixel at coordinates (i,j); (vi) determining ifthe entirety of a current row of pixels has been evaluated; (vii) if, instep (vi), the entirety of the current row of pixels in the selectedneighborhood has not been evaluated, then incrementing the neighborhoodcolumn index (in) and repeating steps (iv) to (v); (viii) if, in step(vi), the entirety of the current row of pixels in the selectedneighborhood has been evaluated, then determining if the last row ofpixels in the selected neighborhood has been evaluated; (ix) if, in step(viii), the last row of pixels in the selected neighborhood has not beenevaluated, then incrementing the neighborhood row index (jn), resettingthe neighborhood column index (in) to zero, and repeating steps (iv) to(v); (x) if, in step (ii) the pixel at coordinates (i,j) is “ON”, thenadding a fractional value to the initial force field value of the pixelat coordinates (i,j); and (xi) if, in step (viii), the last row ofpixels in the selected neighborhood has been evaluated, then repeatingat least some of the steps (ii) to (x) until the force field values ofall pixels in the dither matrix has been updated.
 21. The method ofclaim 20 further comprising: setting the parameters of a function thatrepresents the force field value f.
 22. The method of claim 15 whereinthe filtering step (f4) comprises: using a Gaussian filter to filter theforce field value f.
 23. The method of claim 22 further comprising:adapting the Gaussian filter based upon the gray level.
 24. The methodof claim 15 wherein the Gaussian filter is represented by the equation:H=exp(−R ²/2s ²), wherein R is the distance from the center of an areacovered by the Gaussian filter in response to about 0.1% of thenormalized peak value of the Gaussian filter, and wherein s is thefilter width.
 25. A method of generating a dither matrix for rendering ahalftone image, the dither matrix forming a final pattern uponcompletion, the method comprising the steps of: modulating the dotnumber in a dot pattern for forming the dither matrix; and modulatingthe dot size in the dot pattern for forming the dither matrix; whereinthe step of modulating the dot size comprises the steps of (a5)identifying a neighbor array of “OFF” pixels for each “ON” pixels in thedither matrix, initializing to zero a current gray level “ON” counter kfor indicating the current gray level in the dither matrix, and settingthe value of a current gray level g to a maximum gray level g_(max);(b5) setting a current gray level “ON” number K according to a tonetransfer curve; (c5) updating a force field value f associated with eachpixel in the dither matrix; (d5) filtering the force field value f; (e5)turning “ON” an “OFF” pixel that has a minimum force value f in anidentified neighbor array of step (a5), and incrementing the value ofthe current gray level “ON” counter k; (f5) comparing the value of thecurrent gray level “ON” counter k to the value of the current gray level“ON” number K; (g5) if, in step (f5), the value of the current graylevel “ON” counter k is less than the value of the current gray level“ON” number K, then repeating steps (c5) to (f5); (h5) if, in step (f5),the value of the current gray level “ON” counter k reaches the value ofthe current gray level “ON” number K, then comparing the value of thecurrent gray level g with a first predetermined gray level valueg_(unif); (i5) if, in step (h5), the value of the current gray level gis greater than the value of the first predetermined gray level valueg_(unif), then decrementing the value of the current gray level g,resetting to zero the value of the current gray level “ON” counter k,and repeating steps (b5) to (h5); and (j5) if, in step (h5), the valueof the current gray level g decreases to the value of the firstpredetermined gray level value g_(unif), then terminating the step ofmodulating the dot size.
 26. The method of claim 25 wherein the tonetransfer curve of step (b5) is N²/(g_(max)+1) and wherein the dithermatrix has a size of N by N.
 27. A method of generating a dither matrix,comprising the steps of: performing a dot nucleation phase to form apattern comprising a plurality of initial dots, each initial dot beingformed by at least one pixel that is turned “ON”; performing a dotgrowth phase after a threshold amount of pixels have been turned “ON”during the step of performing the dot nucleation phase; performing a dotpattern uniformization phase to form a final pattern of the dithermatrix.
 28. The method of claim 27 wherein each initial dot formedduring the step of performing the dot nucleation phase has a size of 1by 1 pixel.
 29. The method of claim 27 wherein each initial dot formedduring the step of performing the dot nucleation phase has a sizegreater than 1 by 1 pixel.
 30. The method of claim 27 furthercomprising: applying a force field in at least one of the steps ofperforming the dot nucleation phase, performing the dot growth phase,and performing the dot pattern uniformization phase wherein the forcefield determines the probability of turning “ON” a pixel in the dithermatrix.
 31. The method of claim 30 wherein the force field causes a dotnuclei in the dither matrix to first grow in a substantially diagonaldirection.
 32. The method of claim 30 wherein the force field is aradially symmetric function.
 33. The method of claim 30 wherein theforce field is an inverse function of a distance from a pixel that is“ON” in the dither matrix.
 34. The method of claim 30 wherein the forcefield is based on the function: f=exp(−(r/s)^(p)), wherein r is theradial distance from a pixel that is “ON” to a particular pixel that is“OFF” in the dither matrix, and wherein s and p are assigned valuesbased on trial and error.
 35. The method of claim 30 further comprising:frequency-domain filtering the force field.
 36. The method of claim 27wherein the step of performing the dot nucleation phase comprises: (a1)initializing a current gray level “ON” counter k that indicates thecurrent gray level, setting a current gray level value g to a maximumvalue, and turning “ON” a first pixel in the pattern for forming thedither matrix; (b1) finding a current gray level “ON” number K accordingto a tone transfer curve; (c1) updating each force field valueassociated with each pixel in the pattern; (d1) filtering each updatedforce field value of step (c1); (e1) selecting a portion of “OFF” pixelsin the pattern, turning “ON” an “OFF” pixel with a minimum force fieldvalue in the selected “OFF” pixels, and incrementing the current graylevel “ON” counter k; (f1) repeating steps (c1) to (e1) until athreshold amount of pixels in the pattern are turned “ON and,alternatively, until the current gray level “ON” counter k reaches thecurrent gray level “ON” number K; and (g1) decrementing the current graylevel value g, initializing the current gray level “ON” counter k, andrepeating steps (b1) to (e1) until the threshold amount of pixels in thepattern are turned “ON”.
 37. The method of claim 36 further comprising:after step (e1), ranking a selected group of neighboring pixels near an“ON” pixel based upon the associated force field value of each pixel inthe selected group; and turning “ON” in sequence a predetermined numberNrn of pixels in the selected group and proceeding to step (f1).
 38. Themethod of claim 27 wherein the step of performing the dot growth phasecomprises: (a2) identifying a neighbor array of “OFF” pixels for each“ON” pixel in the pattern, and initializing a current gray level “ON”counter k that indicates the current gray level; (b2) finding a currentgray level “ON” number K according to a tone transfer curve; (c2)updating each force field value associated with each pixel in thepattern; (d2) filtering each updated force field value of step (c2);(e2) turning “ON” an “OFF” pixel that has a minimum force value f in anidentified neighbor array of step (a2), and incrementing the currentgray level “ON” counter k; (f2) repeating steps (c2) to (e2) until thecurrent gray level “ON” counter k reaches the current gray level “ON”number K; and (g2) decrementing the current gray level value g,initializing the current gray level “ON” counter k, and repeating steps(b2) to (e2) until the current gray level value g decreases to a firstpredetermined gray level value g_(unif).
 39. The method of claim 27wherein the step of performing the dot pattern uniformization phasecomprises: (a3) initializing a current gray level “ON” counter k thatindicates the current gray level; (b3) finding a current gray level “ON”number K according to a tone transfer curve; (c3) updating each forcefield value associated with each pixel in the pattern; (d3) filteringeach updated force field value of step (c3); (e3) selecting a portion of“OFF” pixels in the pattern, turning “ON” an “OFF” pixel with a minimumforce field value in the selected “OFF” pixels, and incrementing thecurrent gray level “ON” counter k; (f3) repeating steps (c3) to (e3)until the current gray level “ON” counter k reaches the current graylevel “ON” number K; and (g3) decrementing the current gray level valueg, initializing the current gray level “ON” counter k, and repeatingsteps (b3) to (e3) until the current gray level value g decreases to asecond predetermined gray level value g_(min); and (h3) assigning thesecond predetermined gray level value g_(min) to any remaining “OFF”pixels in the pattern.
 40. The method of claim 27 wherein the step ofperforming the dot nucleation phase comprises: (a4) initializing to zeroa plurality of parameters including a total “ON” number Nt forindicating the total “ON” pixels in the dither matrix, a current graylevel “ON” counter k for indicating the current gray level in the dithermatrix, and a force field value f, and setting a nucleation number Ntsto a predetermined value; (b4) setting a dither matrix value M togreater than a maximum gray level g_(max), and setting the value of acurrent gray level g to the maximum gray level g_(max); (c4) turning“ON” a first selected pixel in the dither matrix; (d4) setting a currentgray level “ON” number K according to a tone transfer curve; (e4)updating a force field value f for each pixel in the dither matrix; (f4)filtering the force field value; (g4) selecting a portion of the “OFF”pixels in the dither matrix; (h4) turning “ON” a pixel that has aminimum force field value f among the selected “OFF” pixels in step(g4), incrementing the values of the current gray level “ON” counter kand the total number Nt of “ON” pixels, and comparing the value thetotal number Nt of “ON” pixels with the value of the nucleation numberNts; (i4) if, in step (h4), the total number Nt of “ON” pixels hasreached the nucleation number Nts, then proceeding to the step ofmodulating the dot size in the dot pattern for forming the dithermatrix; (j4) if, in step (h4), the total number Nt of “ON” pixels isless than the nucleation number Nts, then determining if the value ofthe current gray level “ON” counter k is less than the value of thecurrent gray level “ON” number K; (k4) if, in step (j4), the value ofthe current gray level “ON” counter k is less than the value of thecurrent gray level “ON” number K, then repeating at least some of thesteps (e4) to (j4); and (l4) if, in step (j4), the value of the currentgray level “ON” counter k has reached the current gray level “ON” numberK, then decrementing the current gray level g, setting the current graylevel “ON” counter k to zero, and repeating at least some of the steps(d4) to (j4).
 41. The method of claim 40 further comprising: setting theparameters of a filter for filtering the force field value f.
 42. Themethod of claim 40 wherein the tone transfer curve in step (d4) isN²/(g_(max)+1) and wherein the dither matrix has a size of N by N. 43.The method of claim 40 further comprising: after step (h4), ranking aselected group of neighboring pixels near an “ON” pixel based upon theassociated force field value of each pixel in the selected group;turning “ON” in sequence a predetermined number Nrn of pixels in theselected group; and incrementing the values of the current gray level“ON” counter k and the total “ON” number Nt by the predetermined numberNrn, and proceeding to step (i4).
 44. The method of claim 43 wherein thepredetermined number Nrn is set based upon the printability of a printerfor printing the halftone image.
 45. The method of claim 40 wherein thestep (e4) of updating the force field value f comprises: (i) providingan initial force field value to each pixel in the dither matrix; (ii) inresponse to a pixel that is turned “ON” at given coordinates (io,jo),determining if a pixel at coordinates (i,j) in a selected neighborhooddefined by the neighborhood indexes (in,jn) is either “ON” and,alternatively, “OFF”; (iii) if the pixel at coordinates (i,j) is “OFF”,then initializing the neighborhood indexes (in,jn); (iv) determining anincremental force field value with respect to the pixel at coordinates(i,j) and the “ON” pixel at coordinates (io,jo); (v) updating the forcefield value for the pixel at coordinates (i,j) by the adding theincremental force field value of step (iv) to the initial force fieldvalue of the pixel at coordinates (i,j); (vi) determining if theentirety of a current row of pixels has been evaluated; (vii) if, instep (vi), the entirety of the current row of pixels in the selectedneighborhood has not been evaluated, then incrementing the neighborhoodcolumn index (in) and repeating steps (iv) to (v); (viii) if, in step(vi), the entirety of the current row of pixels in the selectedneighborhood has been evaluated, then determining if the last row ofpixels in the selected neighborhood has been evaluated; (ix) if, in step(viii), the last row of pixels in the selected neighborhood has not beenevaluated, then incrementing the neighborhood row index (jn), resettingthe neighborhood column index (in) to zero, and repeating steps (iv) to(v); (x) if, in step (ii) the pixel at coordinates (i,j) is “ON”, thenadding a fractional value to the initial force field value of the pixelat coordinates (i,j); and (xi) if, in step (viii), the last row ofpixels in the selected neighborhood has been evaluated, then repeatingat least some of the steps (ii) to (x) until the force field values ofall pixels in the dither matrix has been updated.
 46. The method ofclaim 45 further comprising: setting the parameters of a function thatrepresents the force field value f.
 47. The method of claim 40 whereinthe filtering step (f4) comprises: using a Gaussian filter to filter theforce field value f.
 48. The method of claim 47 further comprising:adapting the Gaussian filter based upon the gray level.
 49. The methodof claim 47 wherein the Gaussian filter is represented by the equation:H=exp(−R ²/2s ²), wherein R is the distance from the center of an areacovered by the Gaussian filter in response to about 0.1% of thenormalized peak value of the Gaussian filter, and wherein s is thefilter width.
 50. The method of claim 27 wherein the step of performingthe dot growth comprises: (a5) identifying a neighbor array of “OFF”pixels for each “ON” pixels in the dither matrix, initializing to zero acurrent gray level “ON” counter k to for indicating the current graylevel in the dither matrix, and setting the value of a current graylevel g to a maximum gray level g_(max); (b5) setting a current graylevel “ON” number K according to a tone transfer curve; (c5) updating aforce field value f associated with each pixel in the dither matrix;(d5) filtering the force field value f; (e5) turning “ON” an “OFF” pixelthat has a minimum force value f in an identified neighbor array of step(a5), and incrementing the value of the current gray level “ON” counterk; (f5) comparing the value of the current gray level “ON” counter k tothe value of the current gray level “ON” number K; (g5) if, in step(f5), the value of the current gray level “ON” counter k is less thanthe value of the current gray level “ON” number K, then repeating steps(c5) to (f5); (h5) if, in step (f5), the value of the current gray level“ON” counter k rises to the value of the current gray level “ON” numberK, then comparing the value of the current gray level g with a firstpredetermined gray level value g_(unif); (i5) if, in step (h5), thevalue of the current gray level g is greater than the value of the firstpredetermined gray level value g_(unif), then decrementing the value ofthe current gray level g, resetting to zero the value of the currentgray level “ON” counter k, and repeating steps (b5) to (h5); and (j5)if, in step (h5), the value of the current gray level g decreases to thevalue of the first predetermined gray level value g_(unif), thenterminating the step of modulating the dot size.
 51. The method of claim50 wherein the tone transfer curve of step (b5) is N²/(g_(max)+1) andwherein the dither matrix has a size of N by N.
 52. The method of claim27 wherein the step of performing the dot pattern uniformization phasecomprises: (a6) initializing to zero the value of a current gray level“ON” counter k for indicating the current gray level in the dithermatrix, and setting the value of a current gray level g to a maximumgray level value g_(max); (b6) setting a current gray level “ON” numberK according to a tone transfer curve; (c6) updating a force field valuef associated with each pixel in the dither matrix; (d6) filtering theforce field value f; (e6) selecting a portion of a plurality of “OFF”pixels in the dither matrix (f6) turning “ON” an “OFF” pixel that has aminimum force value f among the selected “OFF” pixels in step (e6), andincrementing the value of the current gray level “ON” counter k; (g6)comparing the value of the current gray level “ON” counter k to thevalue of the current gray level “ON” number K; (h6) if, in step (g6),the value of the current gray level “ON” counter k is less than thevalue of the current gray level “ON” number K, then repeating steps (c6)to (g6); (i6) if, in step (g6), the value of the current gray level “ON”counter k rises to the value of the current gray level “ON” number K,then comparing the value of the current gray level g with a secondpredetermined gray level value g_(min); (j6) if, in step (i6), the valueof the current gray level g is greater than the value of the secondpredetermined gray level value g_(min), then decrementing the value ofthe current gray level g, resetting to zero the value of the currentgray level “ON” counter k, and repeating at least some of the steps (b6)to (i6); and (k6) if, in step (i6), the value of the current gray levelg decreases to the value of the second predetermined gray level valueg_(min), then assigning the second predetermined gray level valueg_(min) to any remaining “OFF” pixels in the dither matrix.
 53. A dithermatrix produced by the method comprising the steps of: performing a dotnucleation phase to form a pattern comprising a plurality of initialdots, each initial dot being formed by at least one pixel that is turned“ON”; performing a dot growth phase after a threshold amount of pixelshave been turned “ON” during the step of performing the dot nucleationphase; and performing a dot pattern uniformization phase to form a finalpattern of the dither matrix.
 54. A method of rendering a halftone imagecomprising the steps of: (a) generating a dither matrix by modulation ofthe dot number and dot size of a matrix pattern of the dither matrix;(b) comparing an image against the matrix pattern; (c) printing a dotpattern on a recording medium based upon the step (b) of comparing theimage against the matrix pattern; and (d) applying a force field duringthe step (a) of generating the dither matrix wherein the force fieldinfluences the matrix pattern.
 55. The method of claim 54 wherein theforce field causes a dot nuclei in the dither matrix to first grow in asubstantially diagonal direction.
 56. The method of claim 54 wherein theforce field is a radially symmetric function.
 57. The method of claim 54wherein the force field is an inverse function of a distance from apixel that is on in the dither matrix.
 58. The method of claim 54wherein the force field is based on the function: f=exp(−(r/s)^(p)),wherein r is the radial distance from a pixel that is on to a particularpixel that is off in the dither matrix, and wherein s and p are assignedvalues based on trial and error.
 59. The method of claim 54 furthercomprising: frequency-domain filtering the force field.
 60. An imageproduced by a method of rendering a halftone image comprising the stepsof: (a) generating a dither matrix by modulation of the dot number anddot size of a matrix pattern of the dither matrix; (b) comparing animage against the matrix pattern; and (c) printing a dot pattern on arecording medium based upon the step (b) of comparing the image againstthe matrix pattern.